package com.itheima.controller;


import com.itheima.dto.PmsProductDto;
import com.itheima.manager.PmsProductManager;
import com.itheima.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@CrossOrigin
@RestController
@RequestMapping("product")
public class PmsProductController {

    @Autowired
    private PmsProductManager pmsProductManager;





   //添加商品
   @PostMapping("create")
   private R createProduct(@RequestBody PmsProductDto pmsProductDto){
       return pmsProductManager.save(pmsProductDto);

   }




    /**
     * 查询商品
     *
     * @param brandId  商品品牌编号
     * @param keyword   商品名称模糊关键字
     * @param pageNum
     * @param pageSize
     * @param productCategoryId 商品分类编号
     * @param productSn   商品货号
     * @param publishStatus  上架状态
     * @param verifyStatus   审核状态
     * @return
     */
    @GetMapping("list")
    private R productList(Integer brandId, String keyword,
                          @RequestParam(defaultValue = "5") Integer pageSize, @RequestParam(defaultValue = "1") Integer pageNum,
                          Integer productCategoryId, String productSn, Integer publishStatus,
                          Integer verifyStatus){

        return  pmsProductManager.getByIdProduct(brandId,keyword,pageNum,pageSize,productCategoryId,productSn,publishStatus,verifyStatus);
    }




    /**
     * 批量修改删除状态
     * @param deleteStatus
     * @param ids
     * @return
     */
    @PostMapping("update/deleteStatus")
    private R deleteStatus(Integer deleteStatus,Integer[] ids){

    return pmsProductManager.deleteStatus(deleteStatus,ids);

    }


    /**
     * 批量设为新品
     * @param newStatus
     * @param ids
     * @return
     */
   @PostMapping("update/newStatus")
    private R newStatus( Integer newStatus, Integer[] ids){
        return pmsProductManager.newStatus(newStatus,ids);
   }


    /**
     * 批量上架商品
     * @param publishStatus
     * @param ids
     * @return
     */
    @PostMapping("update/publishStatus")
    private R publishStatus(Integer publishStatus,Integer[] ids){
        return pmsProductManager.publishStatus(publishStatus,ids);
    }


    /**
     * 批量推荐商品
     * @param recommendStatus
     * @param ids
     * @return
     */
    @PostMapping("update/recommendStatus")
    private R recommendStatus(Integer recommendStatus,Integer[] ids){
        return pmsProductManager.recommendStatus(recommendStatus,ids);
    }




    /**
     * 更新商品
     * @param id
     * @param pmsProductDto
     * @return
     */
    @PostMapping("update/{id}")
    private R updateproductById(@PathVariable Integer id ,@RequestBody PmsProductDto pmsProductDto){

        return pmsProductManager.updateproductById(id,pmsProductDto);
    }


    /**
     * 根据商品id获取商品编辑信息
     * @param id
     * @return
     */
     @GetMapping("updateInfo/{id}")
    private R updateInfoId(@PathVariable Integer id){

         return pmsProductManager.updateInfoId(id);

     }



}

